class Equipo < ActiveRecord::Base
  belongs_to :liga
  has_many :partidos_local, :class_name => "Partido", :inverse_of => :equipo_local, :foreign_key => :equipo_local_id
  has_many :partidos_visitante, :class_name => "Partido", :inverse_of => :equipo_visitante, :foreign_key => :equipo_visitante_id

  validates_uniqueness_of :equipo_nombre

  #validates :name, :uniqueness => true,:presence => true
  # To change this template use File | Settings | File Templates.


  define_index do
    indexes :equipo_nombre
    has :id
  end

  def partidos_jugados
    partidos_local.size + partidos_visitante.size
  end

  def partidos_empatados
    partidos_local.where(:marcador_local => :marcador_visitante).size + partidos_visitante.where(:marcador_local=>:marcador_visitante).size
  end

  def partidos_ganados
    partidos_local.where("marcador_local > marcador_visitante").size + partidos_visitante.where("marcador_local < marcador_visitante").size
  end

  def partidos_perdidos
    partidos_local.where("marcador_local < marcador_visitante").size + partidos_visitante.where("marcador_local > marcador_visitante").size
  end

  def puntos
    partidos_ganados*3 + partidos_empatados
  end

  def efectividad
    (partidos_jugados > 0) ? puntos*100 / (partidos_jugados * 3) : 0
  end

  def goles_convertidos
    partidos_local.sum(:marcador_local) + partidos_visitante.sum(:marcador_visitante)
  end
  def goles_recibidos
    partidos_local.sum(:marcador_visitante) + partidos_visitante.sum(:marcador_local)
  end
  def promedio_goles_convertidos
    (partidos_jugados>0) ? (goles_convertidos.to_f / partidos_jugados.to_f).to_f : 0
  end
  def promedio_goles_recibidos
    (partidos_jugados>0) ? (goles_recibidos.to_f / partidos_jugados.to_f).to_f : 0
  end
end